package com.gome.axwl.aoc.service;

import com.gome.axwl.aoc.entity.driver.DriverAccount;
import com.gome.axwl.aoc.entity.po.AppVersionPo;
import com.gome.commons.core.ResultData;

import java.util.List;
import java.util.Map;

/**
 * APP版本管理
 *
 * @author chengh
 * @date 2018年4月25日10:14:28
 * @copyright(c) gome inc Gome Co.,LTD
 */
public interface AppVersionService {

    /**
     * 检测版本号是否存在
     * @param appVersionPo
     * @return
     */
    long checkVersionIsExist(AppVersionPo appVersionPo);

    /**
     * 新增app版本记录
     * @param appVersionPo
     */
    void insert(AppVersionPo appVersionPo);

    /**
     * 根据id查询
     * @param id
     * @return
     */
    AppVersionPo selectById(int id);

    /**
     * 根据id删除记录
     * @param id
     */
    void deleteById(int id);

    /**
     * 更新状态
     * @param appVersionPo
     */
    void updateVersionStatus(AppVersionPo appVersionPo);

    /**
     * 根据创建时间倒序查询
     * @return
     */
    List<AppVersionPo> getListByPage();

    /**
     * 比较当前系统是否有更高版本
     * @param versionSystemType
     * @param versionCode
     * @return
     */
    List<AppVersionPo> getBiggerVersion(String versionSystemType, String versionCode);

    /**
     * 获取用户的DC编码
     * @param accountNo
     * @return
     */
    ResultData getDcCodeByAccountNo(String accountNo);

    /**
     * 查询DC信息集合
     * @param list
     * @return
     */
    ResultData<Map<String,Object>> getDcByDcCodes(List<String> list);

    /**
     * 获取DC下的用户
     * @param list
     * @return
     */
    ResultData<List<DriverAccount>> getDriversByDcCodes(List<String> list);
}
